[ Top ] [Glenn's GPS Contents Page]
$GPBOD - Bearing, origin to destination $GPBWC - Bearing and distance to waypoint, great circle $GPGGA - Global Positioning System Fix Data $GPGLL - Geographic position, latitude / longitude $GPGSA - GPS DOP and active satellites $GPGSV - GPS Satellites in view $GPHDT - Heading, True $GPR00 - List of waypoints in currently active route $GPRMA - Recommended minimum specific Loran-C data $GPRMB - Recommended minimum navigation info $GPRMC - Recommended minimum specific GPS/Transit data $GPRTE - Routes $GPTRF - Transit Fix Data $GPSTN - Multiple Data ID $GPVBW - Dual Ground / Water Speed $GPVTG - Track made good and ground speed $GPWPL - Waypoint location $GPXTE - Cross-track error, Measured $GPZDA - Date & Time
There is a full list of $GPxxx sentence codes available, without links to format details.
[Top]
Bearing Origin to Destination
eg. BOD,045.,T,023.,M,DEST,START 045.,T bearing 045 degrees True from "START" to "DEST" 023.,M breaing 023 degrees Magnetic from "START" to "DEST" DEST destination waypoint ID START origin waypoint ID
Example 1: $GPBOD,099.3,T,105.6,M,POINTB,*01
Waypoint ID: "POINTB" Bearing 99.3 True, 105.6 Magnetic
This sentence is transmitted in the GOTO mode, without an active route on your GPS.
WARNING: this is the bearing from the moment you press enter in the GOTO
page to the destination waypoint and is NOT updated dynamically!
To update the information, (current bearing to waypoint), you will have to press enter in the GOTO page again.
Example 2: $GPBOD,097.0,T,103.2,M,POINTB,POINTA*52
This sentence is transmitted when a route is active. It contains the active leg information: origin waypoint "POINTA" and destination waypoint "POINTB", bearing between the two points 97.0 True, 103.2 Magnetic. It does NOT display the bearing from current location to destination waypoint!
WARNING Again this information does not change until you are on the next leg of the route. (The bearing from POINTA to POINTB does not change during the time you are on this leg.)
Bearing and distance to waypoint, great circle
eg1. $GPBWC,081837,,,,,,T,,M,,N,*13 BWC,225444,4917.24,N,12309.57,W,051.9,T,031.6,M,001.3,N,004*29 225444 UTC time of fix 22:54:44 4917.24,N Latitude of waypoint 12309.57,W Longitude of waypoint 051.9,T Bearing to waypoint, degrees true 031.6,M Bearing to waypoint, degrees magnetic 001.3,N Distance to waypoint, Nautical miles 004 Waypoint ID
eg2. $GPBWC,220516,5130.02,N,00046.34,W,213.8,T,218.0,M,0004.6,N,EGLM*11 1 2 3 4 5 6 7 8 9 10 11 12 13
1 220516 timestamp 2 5130.02 Latitude of next waypoint 3 N North/South 4 00046.34 Longitude of next waypoint 5 W East/West 6 213.0 True track to waypoint 7 T True Track 8 218.0 Magnetic track to waypoint 9 M Magnetic 10 0004.6 range to waypoint 11 N unit of range to waypoint, N = Nautical miles 12 EGLM Waypoint name 13 *11 checksum
Global Positioning System Fix Data
Name | Example Data | Description |
---|---|---|
Sentence Identifier | $GPGGA | Global Positioning System Fix Data |
Time | 170834 | 17:08:34 Z |
Latitude | 4124.8963, N | 41d 24.8963' N or 41d 24' 54" N |
Longitude | 08151.6838, W | 81d 51.6838' W or 81d 51' 41" W |
Fix Quality: - 0 = Invalid - 1 = GPS fix - 2 = DGPS fix |
1 | Data is from a GPS fix |
Number of Satellites | 05 | 5 Satellites are in view |
Horizontal Dilution of Precision (HDOP) | 1.5 | Relative accuracy of horizontal position |
Altitude | 280.2, M | 280.2 meters above mean sea level |
Height of geoid above WGS84 ellipsoid | -34.0, M | -34.0 meters |
Time since last DGPS update | blank | No last update |
DGPS reference station id | blank | No station id |
Checksum | *75 | Used by program to check for transmission errors |
Courtesy of Brian McClure, N8PQI.
Global Positioning System Fix Data. Time, position and fix related data for a GPS receiver.
eg2. $--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx
hhmmss.ss = UTC of position
llll.ll = latitude of position
a = N or S
yyyyy.yy = Longitude of position
a = E or W
x = GPS Quality indicator (0=no fix, 1=GPS fix, 2=Dif. GPS fix)
xx = number of satellites in use
x.x = horizontal dilution of precision
x.x = Antenna altitude above mean-sea-level
M = units of antenna altitude, meters
x.x = Geoidal separation
M = units of geoidal separation, meters
x.x = Age of Differential GPS data (seconds)
xxxx = Differential reference station ID
eg3. $GPGGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh 1 = UTC of Position 2 = Latitude 3 = N or S 4 = Longitude 5 = E or W 6 = GPS quality indicator (0=invalid; 1=GPS fix; 2=Diff. GPS fix) 7 = Number of satellites in use [not those in view] 8 = Horizontal dilution of position 9 = Antenna altitude above/below mean sea level (geoid) 10 = Meters (Antenna height unit) 11 = Geoidal separation (Diff. between WGS-84 earth ellipsoid and mean sea level. -=geoid is below WGS-84 ellipsoid) 12 = Meters (Units of geoidal separation) 13 = Age in seconds since last update from diff. reference station 14 = Diff. reference station ID# 15 = Checksum
Geographic Position, Latitude / Longitude and time.
eg1. $GPGLL,3751.65,S,14507.36,E*77 eg2. $GPGLL,4916.45,N,12311.12,W,225444,A
4916.46,N Latitude 49 deg. 16.45 min. North 12311.12,W Longitude 123 deg. 11.12 min. West 225444 Fix taken at 22:54:44 UTC A Data valid
eg3. $GPGLL,5133.81,N,00042.25,W*75 1 2 3 4 5 1 5133.81 Current latitude 2 N North/South 3 00042.25 Current longitude 4 W East/West 5 *75 checksum
$--GLL,lll.ll,a,yyyyy.yy,a,hhmmss.ss,A llll.ll = Latitude of position
a = N or S
yyyyy.yy = Longitude of position
a = E or W
hhmmss.ss = UTC of position
A = status: A = valid data
GPS DOP and active satellites
eg1. $GPGSA,A,3,,,,,,16,18,,22,24,,,3.6,2.1,2.2*3C eg2. $GPGSA,A,3,19,28,14,18,27,22,31,39,,,,,1.7,1.0,1.3*35
1 = Mode: M=Manual, forced to operate in 2D or 3D A=Automatic, 3D/2D 2 = Mode: 1=Fix not available 2=2D 3=3D 3-14 = IDs of SVs used in position fix (null for unused fields) 15 = PDOP 16 = HDOP 17 = VDOP
GPS Satellites in view
eg. $GPGSV,3,1,11,03,03,111,00,04,15,270,00,06,01,010,00,13,06,292,00*74 $GPGSV,3,2,11,14,25,170,00,16,57,208,39,18,67,296,40,19,40,246,00*74 $GPGSV,3,3,11,22,42,067,42,24,14,311,43,27,05,244,00,,,,*4D
$GPGSV,1,1,13,02,02,213,,03,-3,000,,11,00,121,,14,13,172,05*67
1 = Total number of messages of this type in this cycle 2 = Message number 3 = Total number of SVs in view 4 = SV PRN number 5 = Elevation in degrees, 90 maximum 6 = Azimuth, degrees from true north, 000 to 359 7 = SNR, 00-99 dB (null when not tracking) 8-11 = Information about second SV, same as field 4-7 12-15= Information about third SV, same as field 4-7 16-19= Information about fourth SV, same as field 4-7
Heading, True.
Actual vessel heading in degrees Ture produced by any device or system producing true heading.
$--HDT,x.x,T
x.x = Heading, degrees True
List of waypoint IDs in currently active route
eg1. $GPR00,EGLL,EGLM,EGTB,EGUB,EGTK,MBOT,EGTB,,,,,,,*58 eg2. $GPR00,MINST,CHATN,CHAT1,CHATW,CHATM,CHATE,003,004,005,006,007,,,*05
List of waypoints. This alternates with $GPWPL cycle which itself cycles waypoints.
Recommended minimum specific Loran-C data
eg. $GPRMA,A,llll.ll,N,lllll.ll,W,,,ss.s,ccc,vv.v,W*hh 1 = Data status 2 = Latitude 3 = N/S 4 = longitude 5 = W/E 6 = not used 7 = not used 8 = Speed over ground in knots 9 = Course over ground 10 = Variation 11 = Direction of variation E/W 12 = Checksum
Recommended minimum navigation information (sent by nav. receiver when a destination waypoint is active)
eg1. $GPRMB,A,0.66,L,003,004,4917.24,N,12309.57,W,001.3,052.5,000.5,V*0B
A Data status A = OK, V = warning 0.66,L Cross-track error (nautical miles, 9.9 max.), steer Left to correct (or R = right) 003 Origin waypoint ID 004 Destination waypoint ID 4917.24,N Destination waypoint latitude 49 deg. 17.24 min. N 12309.57,W Destination waypoint longitude 123 deg. 09.57 min. W 001.3 Range to destination, nautical miles 052.5 True bearing to destination 000.5 Velocity towards destination, knots V Arrival alarm A = arrived, V = not arrived *0B mandatory checksum
eg2. $GPRMB,A,4.08,L,EGLL,EGLM,5130.02,N,00046.34,W,004.6,213.9,122.9,A*3D 1 2 3 4 5 6 7 8 9 10 11 12 13
1 A validity 2 4.08 off track 3 L Steer Left (L/R) 4 EGLL last waypoint 5 EGLM next waypoint 6 5130.02 Latitude of Next waypoint 7 N North/South 8 00046.34 Longitude of next waypoint 9 W East/West 10 004.6 Range 11 213.9 bearing to waypt. 12 122.9 closing velocity 13 A validity 14 *3D checksum
eg3. $GPRMB,A,x.x,a,c--c,d--d,llll.ll,e,yyyyy.yy,f,g.g,h.h,i.i,j*kk 1 = Data Status (V=navigation receiver warning) 2 = Crosstrack error in nautical miles 3 = Direction to steer (L or R) to correct error 4 = Origin waypoint ID# 5 = Destination waypoint ID# 6 = Destination waypoint latitude 7 = N or S 8 = Destination waypoint longitude 9 = E or W 10 = Range to destination in nautical miles 11 = Bearing to destination, degrees True 12 = Destination closing velocity in knots 13 = Arrival status; (A=entered or perpendicular passed) 14 = Checksum
Recommended minimum specific GPS/Transit data
eg1. $GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62 eg2. $GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68
225446 Time of fix 22:54:46 UTC A Navigation receiver warning A = OK, V = warning 4916.45,N Latitude 49 deg. 16.45 min North 12311.12,W Longitude 123 deg. 11.12 min West 000.5 Speed over ground, Knots 054.7 Course Made Good, True 191194 Date of fix 19 November 1994 020.3,E Magnetic variation 20.3 deg East *68 mandatory checksum
eg3. $GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W*70 1 2 3 4 5 6 7 8 9 10 11 12
1 220516 Time Stamp 2 A validity - A-ok, V-invalid 3 5133.82 current Latitude 4 N North/South 5 00042.24 current Longitude 6 W East/West 7 173.8 Speed in knots 8 231.8 True course 9 130694 Date Stamp 10 004.2 Variation 11 W East/West 12 *70 checksum
eg4. $GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a*hh 1 = UTC of position fix 2 = Data status (V=navigation receiver warning) 3 = Latitude of fix 4 = N or S 5 = Longitude of fix 6 = E or W 7 = Speed over ground in knots 8 = Track made good in degrees True 9 = UT date 10 = Magnetic variation degrees (Easterly var. subtracts from true course) 11 = E or W 12 = Checksum
Routes
eg. $GPRTE,2,1,c,0,PBRCPK,PBRTO,PTELGR,PPLAND,PYAMBU,PPFAIR,PWARRN,PMORTL,PLISMR*73 $GPRTE,2,2,c,0,PCRESY,GRYRIE,GCORIO,GWERR,GWESTG,7FED*34 1 2 3 4 5 ..
Transit Fix Data
Time, date, position, and information related to a TRANSIT Fix.
$--TRF,hhmmss.ss,xxxxxx,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,x.x,xxx
hhmmss.ss = UTC of position fix
xxxxxx = Date: dd/mm/yy
llll.ll,a = Latitude of position fix, N/S
yyyyy.yy,a = Longitude of position fix, E/W
x.x = Elevation angle
x.x = Number of iterations
x.x = Number of Doppler intervals
x.x = Update distance, nautical miles
x.x = Satellite ID
Multiple Data ID.
This sentence is transmitted before each individual sentence where there is a need for the Listener to determine the exact source of data in the system. Examples might include dual-frequency depthsounding equipment or equipment that integrates data from a number of sources and produces a single output.
$--STN,xx
xx = Talker ID number, 00 to 99
Dual Ground / Water Speed
Water referenced and ground referenced speed data.
$--VBW,x.x,x.x,A,x.x,x.x,A
x.x = Longitudinal water speed, knots
x.x = Transverse water speed, knots
A = Status: Water speed, A = Data valid
x.x = Longitudinal ground speed, knots
x.x = Transverse ground speed, knots
A = Status: Ground speed, A = Data valid
Track Made Good and Ground Speed.
eg1. $GPVTG,360.0,T,348.7,M,000.0,N,000.0,K*43 eg2. $GPVTG,054.7,T,034.4,M,005.5,N,010.2,K
054.7,T True track made good 034.4,M Magnetic track made good 005.5,N Ground speed, knots 010.2,K Ground speed, Kilometers per hour
eg3. $GPVTG,t,T,,,s.ss,N,s.ss,K*hh 1 = Track made good 2 = Fixed text 'T' indicates that track made good is relative to true north 3 = not used 4 = not used 5 = Speed over ground in knots 6 = Fixed text 'N' indicates that speed over ground in in knots 7 = Speed over ground in kilometers/hour 8 = Fixed text 'K' indicates that speed over ground is in kilometers/hour 9 = Checksum
The actual track made good and speed relative to the ground.
$--VTG,x.x,T,x.x,M,x.x,N,x.x,K
x.x,T = Track, degrees True
x.x,M = Track, degrees Magnetic
x.x,N = Speed, knots
x.x,K = Speed, Km/hr
Waypoint location
eg1. $GPWPL,4917.16,N,12310.64,W,003*65
4917.16,N Latitude of waypoint 12310.64,W Longitude of waypoint 003 Waypoint ID
When a route is active, this sentence is sent once for each waypoint in the route, in sequence. When all waypoints have been reported, GPR00 is sent in the next data set. In any group of sentences, only one WPL sentence, or an R00 sentence, will be sent.
eg2. $GPWPL,5128.62,N,00027.58,W,EGLL*59 1 2 3 4 5 6
1 5128.62 Latitude of nth waypoint on list 2 N North/South 3 00027.58 Longitude of nth waypoint 4 W East/West 5 EGLL Ident of nth waypoint 6 *59 checksum
Cross Track Error, Measured
eg1. $GPXTE,A,A,0.67,L,N
A General warning flag V = warning (Loran-C Blink or SNR warning) A Not used for GPS (Loran-C cycle lock flag) 0.67 cross track error distance L Steer left to correct error (or R for right) N Distance units - Nautical miles
eg2. $GPXTE,A,A,4.07,L,N*6D 1 2 3 4 5 6
1 A validity 2 A cycle lock 3 4.07 distance off track 4 L steer left (L/R) 5 N distance units 6 *6D checksum
Date & Time
UTC, day, month, year, and local time zone.
$--ZDA,hhmmss.ss,xx,xx,xxxx,xx,xx [ Top ]
[Top]
Estimated Position Error
Map datum
Altitude Information
Proprietry Garman (Differential Control)
Proprietary sentences to control a Starlink differential beacon
receiver. (I assume Garmin's DBR is made by Starlink)
[ Top ]
[ Top ]
Where a numeric latitude or longitude is given, the two digits immediately to the left
of the decimal point are whole minutes, to the right are decimals of minutes, and the remaining
digits to the left of the whole minutes are whole degrees.
eg. 4533.35 is 45 degrees and 33.35 minutes. ".35" of a minute is exactly 21 seconds.
eg. 16708.033 is 167 degrees and 8.033 minutes. ".033" of a minute is about 2 seconds.
[ Top ]
This information on NMEA sentences
has been sourced from all over the 'net and I make
no apologies for any inaccuracies or errors. Still, it's useful stuff.
I wish to thank all the sources, which are listed on
my GPS Links page.
Please contact me
if you know of freely available interpretations of sentences which
are not on this page.
[Top]
hhmmss.ss = UTC
xx = Day, 01 to 31
xx = Month, 01 to 12
xxxx = Year
xx = Local zone description, 00 to +/- 13 hours
xx = Local zone minutes description (same sign as hours)
6 Garmin proprietary sentences with 4 interpreted
$PGRME - Estimated Position Error
$PGRMF - Position Fix Sentence
$PGRMM - Map Datum
$PGRMV - Velocity Sentence
$PGRMZ - Altitude Information
$PSLIB - Differential Control
$PGRME
eg. $PGRME,15.0,M,45.0,M,25.0,M*22
15.0,M Estimated horizontal position error in metres (HPE)
45.0,M Estimated vertical error (VPE) in metres
25.0,M Overall spherical equivalent position error
$PGRMM
eg1. $PGRMM,Astrln Geod '66*51
eg2. $PGRMM,NAD27 Canada*2F
Currently active horizontal datum
$PGRMZ
eg1. $PGRMZ,246,f,3*1B
eg2. $PGRMZ,93,f,3*21
93,f Altitude in feet
3 Position fix dimensions 2 = user altitude
3 = GPS altitude
This sentence shows in feet, regardless of units shown on the display.
eg3. $PGRMZ,201,f,3*18
1 2 3
1 201 Altitude
2 F Units - f-Feet
3 checksum
$PSLIB
eg1. $PSLIB,,,J*22
eg2. $PSLIB,,,K*23
These two sentences are normally sent together in each group
of sentences from the GPS.
The three fields are: Frequency, bit Rate, Request Type. The
value in the third field may be:
J = status request
K = configuration request
blank = tuning message
When the GPS receiver is set to change the DBR frequency or
baud rate, the "J" sentence is replaced (just once) by (for
example): $PSLIB,320.0,200*59 to set the DBR to 320 KHz, 200
baud.
All $GPxxx sentence codes and short descriptions
Format of latitudes and longitudes
References
Copyright © Glenn Baddeley 2001
http://aprs.gids.nl/gps was last updated 20 Jule 2001.
Report problems and send comments to J.P van Oyen.